#include <iostream>

// 代码示例
std::string MakeName(const std::string& prefix) {
    std::string name(prefix);
    name += ".txt";

    // Moving a local object in a return statement prevents copy elision (fix available)
    return std::move(name); // 如果你画蛇添足使用了这行代码，反而防止了编译器优化，带来一次move constructor的开销
}

int main(){
    std::string n = MakeName("hello");
    return 0;
}
// 由于RVO优化，函数内局部变量name直接在n上构建。

